home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.applet.Applet;
- import java.awt.AWTEvent;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Window;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.InputEvent;
- import java.awt.event.KeyEvent;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Vector;
-
- class KeyboardManager {
- static KeyboardManager currentManager = new KeyboardManager();
- Hashtable containerMap = new Hashtable();
- Hashtable componentKeyStrokeMap = new Hashtable();
- // $FF: synthetic field
- static Class class$javax$swing$JMenuBar;
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- void fireBinding(JComponent var1, KeyStroke var2, KeyEvent var3) {
- JComponent.KeyboardBinding var4 = var1.bindingForKeyStroke(var2, 2);
- if (var4 != null) {
- ActionListener var5 = var4.getAction();
- if (var5 != null) {
- if (var5 instanceof Action && !((Action)var5).isEnabled()) {
- return;
- }
-
- var5.actionPerformed(new ActionEvent(var1, 1001, var4.getCommand()));
- ((InputEvent)var3).consume();
- }
- }
-
- }
-
- public boolean fireKeyboardAction(KeyEvent var1, boolean var2, Container var3) {
- if (((InputEvent)var1).isConsumed()) {
- System.out.println("Aquired pre-used event!");
- Thread.dumpStack();
- }
-
- KeyStroke var4;
- if (((AWTEvent)var1).getID() == 400) {
- var4 = KeyStroke.getKeyStroke(var1.getKeyChar());
- } else {
- var4 = KeyStroke.getKeyStroke(var1.getKeyCode(), ((InputEvent)var1).getModifiers(), var2 ^ true);
- }
-
- Hashtable var5 = (Hashtable)this.containerMap.get(var3);
- if (var5 != null) {
- Object var6 = var5.get(var4);
- if (var6 != null) {
- if (var6 instanceof JComponent) {
- JComponent var7 = (JComponent)var6;
- if (((Component)var7).isShowing() && ((Component)var7).isEnabled()) {
- this.fireBinding(var7, var4, var1);
- }
- } else if (var6 instanceof Vector) {
- Vector var12 = (Vector)var6;
- Enumeration var8 = var12.elements();
-
- while(var8.hasMoreElements()) {
- JComponent var9 = (JComponent)var8.nextElement();
- if (((Component)var9).isShowing() && ((Component)var9).isEnabled()) {
- this.fireBinding(var9, var4, var1);
- if (((InputEvent)var1).isConsumed()) {
- return true;
- }
- }
- }
- } else {
- System.out.println("Unexpected condition in fireKeyboardAction " + var6);
- Thread.dumpStack();
- }
- }
- }
-
- if (((InputEvent)var1).isConsumed()) {
- return true;
- } else {
- if (var5 != null) {
- Vector var10 = (Vector)var5.get(class$javax$swing$JMenuBar != null ? class$javax$swing$JMenuBar : (class$javax$swing$JMenuBar = class$("javax.swing.JMenuBar")));
- if (var10 != null) {
- Enumeration var13 = var10.elements();
-
- while(var13.hasMoreElements()) {
- JMenuBar var14 = (JMenuBar)var13.nextElement();
- if (((Component)var14).isShowing() && ((Component)var14).isEnabled()) {
- this.fireBinding(var14, var4, var1);
- if (((InputEvent)var1).isConsumed()) {
- return true;
- }
- }
- }
- }
- }
-
- if (var3 instanceof JInternalFrame) {
- Container var11 = getTopAncestor((JInternalFrame)var3);
- if (var11 == null) {
- return false;
- }
-
- this.fireKeyboardAction(var1, var2, var11);
- }
-
- return ((InputEvent)var1).isConsumed();
- }
- }
-
- public static KeyboardManager getCurrentManager() {
- return currentManager;
- }
-
- private static Container getTopAncestor(JComponent var0) {
- for(Container var1 = ((Component)var0).getParent(); var1 != null; var1 = ((Component)var1).getParent()) {
- if (var1 instanceof Window || var1 instanceof Applet || var1 instanceof JInternalFrame) {
- return var1;
- }
- }
-
- return null;
- }
-
- public void registerKeyStroke(KeyStroke var1, JComponent var2) {
- Container var3 = getTopAncestor(var2);
- if (var3 != null) {
- Hashtable var4 = (Hashtable)this.containerMap.get(var3);
- if (var4 == null) {
- var4 = this.registerNewTopContainer(var3);
- }
-
- Object var5 = var4.get(var1);
- if (var5 == null) {
- var4.put(var1, var2);
- } else if (var5 instanceof Vector) {
- Vector var6 = (Vector)var5;
- if (!var6.contains(var2)) {
- var6.addElement(var2);
- }
- } else if (var5 instanceof JComponent) {
- if (var5 != var2) {
- Vector var7 = new Vector();
- var7.addElement(var5);
- var7.addElement(var2);
- var4.put(var1, var7);
- }
- } else {
- System.out.println("Unexpected condition in registerKeyStroke");
- Thread.dumpStack();
- }
-
- this.componentKeyStrokeMap.put(new ComponentKeyStrokePair(this, var2, var1), var3);
- }
- }
-
- public void registerMenuBar(JMenuBar var1) {
- Container var2 = getTopAncestor(var1);
- Hashtable var3 = (Hashtable)this.containerMap.get(var2);
- if (var3 == null) {
- var3 = this.registerNewTopContainer(var2);
- }
-
- Vector var4 = (Vector)var3.get(class$javax$swing$JMenuBar != null ? class$javax$swing$JMenuBar : (class$javax$swing$JMenuBar = class$("javax.swing.JMenuBar")));
- if (var4 == null) {
- var4 = new Vector();
- var3.put(class$javax$swing$JMenuBar != null ? class$javax$swing$JMenuBar : (class$javax$swing$JMenuBar = class$("javax.swing.JMenuBar")), var4);
- }
-
- if (!var4.contains(var1)) {
- var4.addElement(var1);
- }
-
- }
-
- protected Hashtable registerNewTopContainer(Container var1) {
- Hashtable var2 = new Hashtable();
- this.containerMap.put(var1, var2);
- return var2;
- }
-
- public static void setCurrentManager(KeyboardManager var0) {
- currentManager = var0;
- }
-
- public void unregisterKeyStroke(KeyStroke var1, JComponent var2) {
- ComponentKeyStrokePair var3 = new ComponentKeyStrokePair(this, var2, var1);
- Object var4 = this.componentKeyStrokeMap.get(var3);
- if (var4 != null) {
- Hashtable var5 = (Hashtable)this.containerMap.get(var4);
- if (var5 == null) {
- Thread.dumpStack();
- } else {
- Object var6 = var5.get(var1);
- if (var6 == null) {
- Thread.dumpStack();
- } else {
- if (var6 instanceof JComponent && var6 == var2) {
- var5.remove(var1);
- } else if (var6 instanceof Vector) {
- Vector var7 = (Vector)var6;
- var7.removeElement(var2);
- if (var7.isEmpty()) {
- var5.remove(var1);
- }
- }
-
- if (var5.isEmpty()) {
- this.containerMap.remove(var4);
- }
-
- this.componentKeyStrokeMap.remove(var3);
- }
- }
- }
- }
-
- public void unregisterMenuBar(JMenuBar var1) {
- Container var2 = getTopAncestor(var1);
- Hashtable var3 = (Hashtable)this.containerMap.get(var2);
- if (var3 != null) {
- Vector var4 = (Vector)var3.get(class$javax$swing$JMenuBar != null ? class$javax$swing$JMenuBar : (class$javax$swing$JMenuBar = class$("javax.swing.JMenuBar")));
- if (var4 != null) {
- var4.removeElement(var1);
- if (var4.isEmpty()) {
- var3.remove(class$javax$swing$JMenuBar != null ? class$javax$swing$JMenuBar : (class$javax$swing$JMenuBar = class$("javax.swing.JMenuBar")));
- if (var3.isEmpty()) {
- this.containerMap.remove(var2);
- }
- }
- }
- }
-
- }
- }
-